/*
 * @Description: 荷兰国旗
 * @Author: your name
 * @Date: 2019-08-19 14:42:59
 * @LastEditTime: 2019-08-19 15:36:58
 * @LastEditors: Please set LastEditors
 */



//  一个数组里面，小于某个数的在前面，等于的在中间，大于的在后面
// 三个指针，lo,current,hi分别代表起始点，当前点，终止点
// 从左边开始，小于的时候，lo和current+1,如果current>lo ，lo和current元素互换 + 1， 
// 等于的时候,current + 1
// 大于的时候，hi - 1


const dutch_flag = function(arr,provice){
    let lo = current = 0
    let hi = arr.length - 1

    while(current < hi){
        console.log(lo,current,hi)
        if(arr[current] < provice){   // 小于的时候
            if(lo == current){
                lo++
                current++
            }else{
                [arr[lo],arr[current]] = [arr[current],arr[lo]]
                lo++
            }
        }else if(arr[current] == provice){ //等于的时候
            current++
        }else{  // 大于的时候
            [arr[current],arr[hi]] = [arr[hi],arr[current]]
            hi--
        }
        console.log(arr)
    }
    return arr
}